home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The 640 MEG Shareware Studio 2
/
The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO
/
clang
/
bccapp.zip
/
REPORT.H
< prev
next >
Wrap
C/C++ Source or Header
|
1991-09-15
|
2KB
|
96 lines
/*
*
* Report processing/creation
*
* (C) 1990 Vision Software
*
* $Id: report.h 1.2001 91/04/25 15:06:47 pcalvin release $
*
* Comments:
*
* This class will create/manage reports from any database.
*
* Bugs:
*
* None documented
*
*/
#if (!defined(__REPORT__))
#define __REPORT__
#if (!defined(__DATABASE__))
#include <dbase.h>
#endif
/*
* Title Alignment.
*/
enum AL
{
alLeft,alCentre,alRight
};
/*
* Maintaining list of report entries..
*/
struct EN
{
struct EN *penNext;
struct EN *penPrev;
COL col;
SZ sz;
CCH cch;
SZ szTitle;
};
typedef UINT CEN;
STATIC CONST CEN cenNil = Nil;
typedef struct EN *PEN;
STATIC CONST PEN penNil = (PEN)Nil;
/*
* Report Titles
*/
struct TL
{
struct TL *ptlNext;
SZ sz;
AL al;
};
typedef UINT CTL;
STATIC CONST CTL ctlNil = Nil;
typedef struct TL* PTL;
STATIC CONST PTL ptlNil = (PTL)Nil;
/*
* Report Generation
*/
class REPORT
{
public:
REPORT(DATABASE &rdtb);
~REPORT();
VOID Title(SZ sz,AL al = alCentre);
VOID Entry(COL col,SZ sz,CCH cch,SZ szTitle = szNil);
VOID SetFilterTo(BOOL (*pfnFUse)(DBASE *pdb));
VOID Generate(BOOL fForward = fTrue,BOOL fPrinter = fFalse);
private:
VOID CreateTitle(SZ szText,SZ szBar);
VOID CreateOutput(SZ sz);
VOID OutputFix(SZ sz,CCH cch);
DATABASE &rdtb;
BOOL (*pfnFUsePdb)(DBASE *pdb);
PEN penFirst;
PEN penCurrent;
PTL ptlFirst;
PTL ptlCurrent;
CTL ctlCurrent;
CCH cchReportWidthMac;
SZTEMP szTitleText;
SZTEMP szTitleBar;
};
#endif /* !defined(__REPORT__) */